package com.carkeeper.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.carkeeper.dto.CUserDTO;
import com.carkeeper.dto.CarDTO;
import com.carkeeper.pojo.CUserPO;
import com.carkeeper.pojo.CarPO;
import com.carkeeper.vo.CUserQueryParamVo;
import com.carkeeper.vo.CarQueryParamVo;

import java.util.List;

/**
 * 车辆信息服务层定义
 */
public interface CarService {
    /**
     * 保存或更新车辆信息
     *
     * @param carPO 车辆信息
     * @return 操作结果
     */
    Boolean saveAndUpdate(CarPO carPO);

    /**
     * 删除车辆
     *
     * @param id 车辆id
     * @return 操作结果
     */
    Boolean delete(Long id);

    /**
     * 获取车辆分页数据
     *
     * @param paramVo 查询条件
     * @return 车辆分页数据
     */
    Page<CarPO> findByPage(CarQueryParamVo paramVo);

    /**
     * 获取车辆列表
     *
     * @param carDTO 查询条件
     * @return 车辆列表
     */
    List<CarPO> list(CarDTO carDTO);

    /**
     * 根据id获取车辆信息
     *
     * @param id 车辆id
     * @return 车辆信息
     */
    CarPO findById(Long id);

    /***
     * 根据车牌号获取车辆信息
     * @param code 车牌号
     * @return 车辆信息
     */
    CarPO findByCode(String code);
}
